package com.jinzhi.jzweb.strategy;

import com.baomidou.mybatisplus.plugins.Page;
import com.jinzhi.common.utils.Result;
import com.jinzhi.jzweb.domain.ExaminationBatchDO;
import com.jinzhi.jzweb.domain.ExaminationResultsComDO;
import com.jinzhi.jzweb.domain.StuSignUpComDO;
import com.jinzhi.jzweb.pojo.VtatisticsVo;
import com.jinzhi.jzweb.pojo.moduleConfig.RecordPointsDO;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;

/*
 *  @author : JingChangTian
 *  @date   : 2023/6/3 14:09
 *  @description :  赛场策略模式：A:不同赛场不同统计策略  B:不同赛场不同打分策略
 *
 */
public interface BaseStrategy {

    /**
     * 根据赛场查询录分成绩导出
     * @param response
     */
    void downloadImportTemplate(HttpServletResponse response,String field);


    /**
     * 根据赛场查询录分成绩导出
     * @param response
     */
    void downloadImportTemplate2(HttpServletResponse response,String field,String type);


    /**
     * 机考分数导出
     * @param response
     */
    void downloadImportBased(HttpServletResponse response,String field);

    /**
     * 录分
     * @param resultsComDO
     * @return
     */
    Result recordPoints(RecordPointsDO resultsComDO);

    Result recordPoints2(RecordPointsDO resultsComDO);

    /**
     * 根据赛场分页查询录分信息
     * @param field
     * @param current
     * @param size
     * @return
     */
    Result getScoreInfoPage(String field,Integer current,Integer size);

    Result getScoreInfoPage2(String field,Integer current,Integer size,String type);
}
